The difference between S50(4 byte UID) and S50(7 byte UID), is the 7 byte should do another anticoll and select operation.

So for our api, you should add a invoke of fw_anticoll2() then a invoke of fw_select2() after invoked fw_card() (or a order invoke of fw_request(), fw_anticoll(), fw_select()).

For more detial, refer to the example with c++ code named MifareOne(7 bytes UID).